home *** CD-ROM | disk | FTP | other *** search
-
- Release Notes
-
- Fastgraph (tm) V4.0
-
-
-
- Ted Gruber Software
- PO Box 13408
- Las Vegas, NV 89112
-
- (702) 735-1980 voice
- (702) 735-4603 FAX
- (702) 796-7134 BBS
- 72000,1642 CIS
-
- Copyright (c) 1989-1995 Ted Gruber Software.
- All Rights Reserved.
-
-
- ------------------------------------------------------------------------------
- Introduction
- ------------------------------------------------------------------------------
-
- The Fastgraph 4.0 release notes describe the new features added in Fastgraph
- 4.0. The release notes will be of interest to customers who are already
- familiar with Fastgraph so they can get an overview of the new version. Among
- the many new features in Fastgraph 4.0 are:
-
- * 16-bit protected mode libraries
- * 32-bit protected mode libraries
- * Virtual buffers
- * Support for Autodesk Animator FLI/FLC files
- * Bitmap scaling and shearing capabilities
- * Split screen support
- * Viewports
- * Support for new SVGA chipsets
- * Additional PCX and GIF support routines
- * Total of 56 new Fastgraph routines
- * Support for additional compilers
-
- The release notes provide an overview of most of these new features. For
- details, refer to the Fastgraph User's Guide and Reference Manual.
-
- Please be sure to read the last two sections of this document, which discuss
- important compatibility considerations when migrating Fastgraph 2.x and 3.x
- programs to version 4.0.
-
- ------------------------------------------------------------------------------
- Summary of New Routines in Fastgraph 4.0
- ------------------------------------------------------------------------------
-
- The following routines are new to Fastgraph 4.0. Please see the Fastgraph
- Reference Manual for full descriptions, including their parameters, return
- values, and restrictions.
-
- FG_CLIPMAP Version of FG_DRAWMAP that performs clipping
- FG_COLORS Return number of colors available in the current video mode
- FG_FINDPAGE Find an available page number for virtual/logical pages
- FG_FLICDONE Close an FLI or FLC file
- FG_FLICHEAD Read an FLI or FLC file header
- FG_FLICMODE Determine optimal video mode for an FLI or FLC file
- FG_FLICOPEN Open an FLI or FLC file
- FG_FLICPLAY Play one or more frames from an FLI or FLC file
- FG_FLICSIZE Return FLI or FLC image dimensions
- FG_FLICSKIP Advance one or more frames in an FLI or FLC file
- FG_GETBANKS Return current SVGA read and write bank numbers
- FG_GETCLIP Return current clipping limits
- FG_GETVIEW Return current viewport extremes
- FG_GETXBOX Return FG_BOX left and right edge width
- FG_GETXJUST Return FG_PRINT and FG_PRINTC horizontal justification setting
- FG_GETYBOX Return FG_BOX top and bottom edge width
- FG_GETYJUST Return FG_PRINT and FG_PRINTC vertical justification setting
- FG_GIFHEAD Read a GIF file global header and first local header
- FG_GIFMODE Determine optimal video mode for a GIF file
- FG_GIFPAL Retrieve palette information from a GIF file
- FG_GIFRANGE Return GIF image dimensions
- FG_INITPM Initialize Fastgraph's protected mode kernel
- FG_INVERT Invert orientation of a bitmapped image array
- FG_KBLAST Return scan code of most recent keypress
- FG_KBRESET Reset Fastgraph's low-level keyboard handler
- FG_LOADPCX Load a PCX image into a virtual buffer
- FG_MOUSE256 Define 256-color mouse cursor
- FG_PACK Translate "one pixel per byte" bitmap to mode-specific format
- FG_PCXPAL Retrieve palette information from a PCX file
- FG_PCXRANGE Return PCX image dimensions
- FG_POLYEDGE Specify FG_POLYFILL right and bottom edge inclusion
- FG_PRINTC Version of FG_PRINT that performs clipping
- FG_SCALE Scale a bitmapped image
- FG_SETBANKS Define SVGA read and write bank numbers
- FG_SETVIEW Define viewport extremes and position
- FG_SHEAR Shear a bitmapped image
- FG_SHOWFLIC Play an FLI or FLC file
- FG_SPLIT Enable or disable a split screen environment
- FG_TEXTC Version of FG_TEXT that supports clipping
- FG_UNPACK Translate mode-specific bitmap to "one pixel per byte" format
- FG_VBADDR Return address of a virtual buffer
- FG_VBALLOC Create a virtual buffer (allocate memory internally)
- FG_VBCLOSE Close the active virtual buffer
- FG_VBCOPY Copy rectangular region from one virtual buffer to another
- FG_VBCUT Copy rectangular region from active video page to virtual buffer
- FG_VBDEFINE Create a virtual buffer (from previously allocated memory)
- FG_VBFREE Release virtual buffer memory allocated with FG_VBALLOC
- FG_VBHANDLE Return handle of the active virtual buffer
- FG_VBINIT Initialize Fastgraph's virtual buffer environment
- FG_VBOPEN Make an existing virtual buffer the active virtual buffer
- FG_VBPASTE Copy rectangular region from virtual buffer to active video page
- FG_VBTCXFER Version of FG_VBPASTE that supports transparent colors
- FG_VBUNDEF Release a virtual buffer handle
- FG_VGASTATE Save or restore the internal VGA state
- FG_XVIEW Translate horizontal viewport coordinate to screen space
- FG_YVIEW Translate vertical viewport coordinate to screen space
-
- Fastgraph/Light 4.0 does not include the new GIF support routines (FG_GIFHEAD,
- FG_GIFMODE, FG_GIFPAL, and FG_GIFRANGE). Further, the new FG_INITPM routine is
- present in the Fastgraph/Light libraries but is not meaningful.
-
- ------------------------------------------------------------------------------
- Protected Mode Libraries
- ------------------------------------------------------------------------------
-
- Fastgraph 4.0 includes protected mode libraries for most popular DOS extenders
- and protected mode compilers. The protected mode libraries include a new
- routine, FG_INITPM, to set up features specific to each supported DOS
- extender. It must be called before any other Fastgraph routine when building
- protected mode executables. Failure to do this will result in a protection
- fault and termination of your program (usually before it sets the video mode).
- Note that in many cases, FG_INITPM resides in an extender-specific library
- such as FG16PHAR.LIB or FG32DPMI.LIB that must be specified when linking your
- program.
-
- To build an EXE file from the 16-bit protected mode libraries, you must have
- a compiler capable of generating 80286 protected mode instructions, as well
- as a 16-bit DOS extender (Borland Pascal 7 does not require a separate DOS
- extender). Fastgraph 4.0 supports the following 16-bit compilers and DOS
- extenders:
-
- Borland C++ (version 3.0 or later)
- Borland Pascal (version 7.0 or later)
- Microsoft C/C++ (version 6.0 or later)
- Microsoft Visual C++ (version 1.0 or later)
-
- Borland PowerPack for DOS
- Phar Lap 286|Dos-Extender SDK
- Phar Lap 286|Dos-Extender Lite
- Rational Systems DOS/16M
-
- To build an EXE file from the 32-bit protected mode libraries, you must have a
- compiler capable of generating 80386 protected mode instructions, as well as a
- 32-bit DOS extender. Fastgraph 4.0 supports the following 32-bit compilers and
- DOS extenders:
-
- Borland C++ (version 4.02 or later)
- MetaWare High C/C++ (version 3.0 or later)
- Microsoft Visual C++ 32-bit Edition (version 1.0 or later)
- WATCOM C/C++ 32 (version 9.5 or later)
- WATCOM C32 for DOS
- Microsoft FORTRAN PowerStation (version 1.0 or later)
-
- Borland PowerPack for DOS
- DOSXMSF (subset of Phar Lap extender supplied with MSF PowerStation)
- Phar Lap TNT Dos-Extender SDK (formerly 386|Dos-Extender SDK)
- Phar Lap TNT Dos-Extender Lite
- Rational Systems DOS/4G
- Rational Systems DOS/4GW (supplied with WATCOM C/C++ 32)
- Rational Systems DOS/4GW Professional
-
- See Chapter 1 of the Fastgraph User's Guide for information about building
- protected mode programs with each supported compiler and DOS extender. For
- other important details regarding conversion of real mode Fastgraph programs
- to protected mode, please read Appendix G of the Fastgraph User's Guide.
-
- ------------------------------------------------------------------------------
- Virtual Buffers
- ------------------------------------------------------------------------------
-
- Virtual buffers are blocks of conventional memory that you can treat as video
- memory. They are much more general than virtual pages, as they are supported
- in all graphics video modes and can be smaller or larger than the actual page
- size. An application may have up to 32 virtual buffers open simultaneously.
-
- Virtual buffers are supported in both real and protected mode, but the memory
- requirements for creating large virtual buffers (especially in SVGA graphics
- modes) makes protected mode the best platform for virtual buffers. Real mode
- virtual buffers must reside in conventional memory. A future version of
- Fastgraph may add EMS/XMS virtual buffer support.
-
- See pages 185-194 in Chapter 8 of the Fastgraph User's Guide for additional
- information about virtual buffers.
-
- ------------------------------------------------------------------------------
- FLI and FLC Files
- ------------------------------------------------------------------------------
-
- FLI and FLC files (collectively called "flic files") contain sequences of
- image frames that can be displayed in rapid succession to achieve the illusion
- of movement. FLI files are produced by Autodesk Animator and always have a
- 320x200 resolution, while FLC files are produced by Autodesk Animator Pro and
- can have any resolution. Fastgraph's flic file routines work with both FLI and
- FLC files, but they are restricted to 256-color graphics modes because flic
- files always contain 256-color images.
-
- Fastgraph 4.0 includes both high-level and low-level routines for working with
- flic files. See pages 208-212 in Chapter 9 of the Fastgraph User's Guide for
- additional information about Fastgraph's flic file support.
-
- ------------------------------------------------------------------------------
- Bitmap Scaling and Shearing
- ------------------------------------------------------------------------------
-
- Fastgraph 4.0 includes a new routine, FG_SCALE, for horizontal and vertical
- scaling of bitmapped images. FG_SCALE expects a source bitmap stored in the
- "one pixel per byte" format of Fastgraph's 256-color modes, and it returns an
- expanded or reduced bitmap in the same format. To scale images in graphics
- modes with fewer than 256 colors, you must first use the FG_UNPACK routine to
- convert the bitmap to the format expected by FG_SCALE, perform the scaling,
- and finally use FG_PACK to convert the scaled image back to the mode-specific
- format. Note that because Fastgraph's virtual buffers also use the one pixel
- per byte format, you can also use FG_SCALE to scale images stored in virtual
- buffers.
-
- The new FG_SHEAR routine shears bitmapped images. Shearing can be thought of
- as anchoring one corner of a rectangular region and stretching the opposite
- corner horizontally or vertically. For example, bitmaps containing text or
- other characters could be sheared horizontally to the right for an italic
- effect. A sheared image will always be larger than the original image, and it
- will contain empty triangular areas at its corners. The empty areas will be
- filled with color 0 pixels, meaning they will be transparent when you display
- a sheared image with FG_DRWIMAGE or related routines. Like FG_SCALE, FG_SHEAR
- expects bitmaps in the "one pixel per byte" format and can likewise be used
- with images stored in virtual buffers.
-
- See pages 259-265 in Chapter 10 of the Fastgraph User's Guide for additional
- information about bitmap scaling and shearing.
-
- ------------------------------------------------------------------------------
- Split Screen Support
- ------------------------------------------------------------------------------
-
- Fastgraph 4.0 provides split screen support for EGA, VGA, and XVGA graphics
- modes (modes 13 through 23) through the FG_SPLIT routine. When a split screen
- is enabled, the top portion of the screen (rows 0 through n-1, where n is the
- pixel row at which the split screen takes effect) will contain a subset of the
- visual video page. The bottom portion (starting at row n) will contain the
- first maxy-n+1 rows of video page 0. A split screen environment is useful for
- maintaining a static image, such as a scoreboard or status box, at the bottom
- of the screen while scrolling the top portion.
-
- See pages 320-322 in Chapter 13 of the Fastgraph User's Guide for additional
- information about Fastgraph's split screen support.
-
- ------------------------------------------------------------------------------
- Viewports
- ------------------------------------------------------------------------------
-
- Viewports provide an alternate integer-based coordinate system for referencing
- pixels in video memory or virtual buffers. Fastgraph 4.0 includes routines to
- create a viewport, return the viewport limits, and scale viewport coordinates.
-
- See pages 67-69 in Chapter 4 of the Fastgraph User's Guide for more details
- about viewports.
-
- ------------------------------------------------------------------------------
- Support for New SVGA Chipsets
- ------------------------------------------------------------------------------
-
- Fastgraph 4.0 adds support for these SVGA chipsets:
-
- Avance Logic 2000 series
- Cirrus Logic 6400 series
- NCR 77C22/77C32
- Oak OTI-077
- Oak OTI-087
-
- ------------------------------------------------------------------------------
- New Turbo Pascal Unit Files
- ------------------------------------------------------------------------------
-
- The Fastgraph 4.0 Pascal distribution includes two new unit files, FGFLIC and
- FGVB, containing the new FLI/FLC and virtual buffer routines. Because of size
- constraints, it was necessary to move four routines (FG_DRAWMAP, FG_GETMAP,
- FG_PRINT, and FG_TEXT) from the Fastgraph 3.x FGMAIN unit file to the FGBITMAP
- unit in Fastgraph 4.0. Any Fastgraph program that uses these four routines
- must now include the FGBITMAP unit in its uses statement.
-
- Real mode Fastgraph unit files use a TPU file extension; their protected mode
- counterparts use a TPP extension. For instance, FGMAIN.TPU is the real mode
- version of the FGMAIN unit, and FGMAIN.TPP is the protected mode version. If
- you install Fastgraph for Borland Pascal, the TPU and TPP files will be copied
- to your unit file directory. Installing Fastgraph for Turbo Pascal copies only
- the TPU files.
-
- Refer to Appendix E of the Fastgraph User's Guide for a list of the Fastgraph
- routines in each Pascal unit file.
-
- ------------------------------------------------------------------------------
- Converting Applications from Fastgraph 3.x to Fastgraph 4.0
- ------------------------------------------------------------------------------
-
- Real mode C/C++, BASIC, and FORTRAN applications written with Fastgraph 3.x
- should require no changes to link with Fastgraph 4.0.
-
- As described in the previous section, real mode Pascal programs will need to
- add the FGBITMAP unit to their uses statement if they call the FG_DRAWMAP,
- FG_GETMAP, FG_PRINT, or FG_TEXT routines.
-
- The issues involved in converting real mode Fastgraph 3.x programs to run in
- protected mode are addressed in Appendix G of the Fastgraph User's Guide.
-
- ------------------------------------------------------------------------------
- Converting Applications from Fastgraph 2.x to Fastgraph 4.0
- ------------------------------------------------------------------------------
-
- Only two features in Fastgraph 2.x are not upwardly compatible with version
- 4.0. The first applies only to Borland Pascal and Turbo Pascal, while the
- second applies to all supported compilers.
-
- In Fastgraph 2.x, all Fastgraph routines resided in the FGTP unit file. In
- Fastgraph 3.x and 4.0, the Fastgraph routines are split among several unit
- files. To convert a Pascal program from Fastgraph 2.x to Fastgraph 4.0, you
- must replace the FGTP unit reference with FGMAIN in the program's uses
- statement, and then add any other unit file names that contain other routines
- used in your program. Appendix E of the Fastgraph User's Guide lists the
- Fastgraph routines in each Pascal unit file.
-
- The other change pertains to the FG_SHOWPCX routine introduced in Fastgraph
- 3.0, which replaces the FG_DISPPCX routine of earlier versions (the routine
- was renamed to avoid confusion with the pixel run display routines, which all
- have names of the form FG_DISPxxxx). PCX image positioning will generally not
- be an issue for full-screen PCX files because the PCX header typically defines
- their upper left corner at the screen origin, which is where you'd move to
- display a full-screen image anyway. However, if a PCX file is smaller than the
- screen resolution and you want to override the image positioning in the PCX
- header, you must define a new FG_SHOWPCX flags argument in which bit 1 is set.
- That is, the Fastgraph 2.x call FG_DISPPCX(filename,0) is equivalent to
- FG_SHOWPCX(filename,2). Similarly, FG_DISPPCX(filename,1) is equivalent to
- FG_SHOWPCX(filename,3). Note that C and C++ programmers can use the following
- preprocessor directive to make an old FG_DISPPCX call compatible with the new
- FG_SHOWPCX routine.
-
- #define fg_disppcx(a,b) fg_showpcx(a,b|2)